package xyz.huanggy.minio.upload.configuration;

import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@Component
public class StringRedisTemplate {

    // 使用 HashMap 模拟 Redis 存储
    private final Map<String, String> redisMap = new HashMap<>();


    /**
     * 设置一个键值对
     *
     * @param key   键
     * @param value 值
     */
    public void opsForValueSet(String key, String value, long timeout, TimeUnit unit) {
        redisMap.put(key, value);
    }

    /**
     * 获取一个键的值
     *
     * @param key 键
     * @return 值
     */
    public String opsForValueGet(String key) {
        return redisMap.get(key);
    }

    /**
     * 删除一个键值对
     *
     * @param key 键
     */
    public void opsForValueDelete(String key) {
        redisMap.remove(key);
    }

    /**
     * 检查某个键是否存在
     *
     * @param key 键
     * @return true 存在，false 不存在
     */
    public boolean hasKey(String key) {
        return redisMap.containsKey(key);
    }

    /**
     * 获取所有的键
     *
     * @return 键集合
     */
    public Map<String, String> getAll() {
        return redisMap;
    }

}
